Crate leptos_axum
source ·Expand description
Provides functions to easily integrate Leptos with Axum.
§JS Fetch Integration
The leptos_axum
integration supports running in JavaScript-hosted WebAssembly
runtimes, e.g., running inside Deno, Cloudflare Workers, or other JS environments.
To run in this environment, you need to disable the default feature set and enable
the wasm
feature on leptos_axum
in your Cargo.toml
.
leptos_axum = { version = "0.6.0", default-features = false, features = ["wasm"] }
§Features
default
: supports running in a typical native Tokio/Axum environmentwasm
: withdefault-features = false
, supports running in a JS Fetch-based environmentnonce
: activates Leptos features that automatically provide a CSPNonce
via contextexperimental-islands
: activates Leptos islands mode
§Important Note
Prior to 0.5, using default-features = false
on leptos_axum
simply did nothing. Now, it actively
disables features necessary to support the normal native/Tokio runtime environment we create. This can
generate errors like the following, which don’t point to an obvious culprit:
spawn_localcalled from outside of a
task::LocalSet
If you are not using the wasm
feature, do not set default-features = false
on this package.
§More information
For more details on how to use the integrations, see the
examples
directory in the Leptos repository.
Structs§
- Allows you to override details of the HTTP response like the status code and add Headers/Cookies.
- This struct lets you define headers and override the status of the Response from an Element or a Server Function Typically contained inside of a ResponseOptions. Setting this is useful for cookies and custom responses.
Traits§
- This trait allows one to pass a list of routes and a render function to Axum’s router, letting us avoid having to use wildcards or manually define all routes in multiple places.
Functions§
- TODO docs
- A helper to make it easier to use Axum extractors in server functions.
- A helper to make it easier to use Axum extractors in server functions. This function is compatible with extractors that require access to
State
. - Decomposes an HTTP request into its parts, allowing you to read its headers and other data without consuming the body. Creates a new Request from the original parts for further processing
- Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths.
- Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop
.leptos_routes()
from generating a route for it, allowing a custom handler. These need to be in Axum path format - Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop
.leptos_routes()
from generating a route for it, allowing a custom handler. These need to be in Axum path format - Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths. Adding excluded_routes to this function will stop
.leptos_routes()
from generating a route for it, allowing a custom handler. These need to be in Axum path format Additional context will be provided to the app Element. - Generates a list of all routes defined in Leptos’s Router in your app. We can then use this to automatically create routes in Axum’s Router without having to use wildcard matching or fallbacks. Takes in your root app Element as an argument so it can walk you app tree. This version is tailored to generate Axum compatible paths.
- An Axum handlers to listens for a request with Leptos server function arguments in the body, run the server function if found, and return the resulting
Response
. - An Axum handlers to listens for a request with Leptos server function arguments in the body, run the server function if found, and return the resulting
Response
. - Provides an easy way to redirect the user from within a server function. Mimicking the Remix
redirect()
, it sets a StatusCode of 302 and a LOCATION header with the provided value. If looking to redirect from the client,leptos_router::use_navigate()
should be used instead - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, asynchronously rendering an HTML page after allasync
Resources have loaded. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, asynchronously rendering an HTML page after allasync
Resources have loaded. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, asynchronously rendering an HTML page after allasync
Resources have loaded. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an HTML stream of your application. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an in-order HTML stream of your application. This stream will pause at each<Suspense/>
node and wait for it to resolve before sending down its HTML. The app will become interactive once it has fully loaded. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an in-order HTML stream of your application. This stream will pause at each<Suspense/>
node and wait for it to resolve before sending down its HTML. The app will become interactive once it has fully loaded. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an HTML stream of your application. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an HTML stream of your application. - Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an HTML stream of your application. The difference between calling this andrender_app_to_stream_with_context()
is that this one respects theSsrMode
on each Route and thus requiresVec<RouteListing>
for route checking. This is useful if you are using.leptos_routes_with_handler()
- Returns an Axum Handler that listens for a
GET
request and tries to route it using leptos_router, serving an HTML stream of your application. It allows you to pass in a context function with additional info to be made available to the app The difference between calling this andrender_app_to_stream_with_context()
is that this one respects theSsrMode
on each Route, and thus requiresVec<RouteListing>
for route checking. This is useful if you are using.leptos_routes_with_handler()
.